package jee.boot.common.standard;


import jee.boot.entity.auth.Role;
import jee.boot.entity.auth.User;

import java.util.List;

/**
 * 当前账户权限信息
 */
public interface AuthorityHandler {
    /**
     * 用户授权缓存的key
     */
    String USER_AUTHORITY_KEY="UserAuthority";
    /**
     *  当前登录的用户信息,包含了所有的资源,数据权限
     * @return
     */
    User getCurrentUser();
    /**
     *  根据Account信息获取用户的权限,包含了所有的资源,数据权限
     * @return
     */
    User getUserByAccount(String accountId);


    /**
     * 当前登录User的ID
     * @return
     */
    String getUserId();

    /**
     * 当前登录User所拥有的所有角色
     * @return
     */
    List<Role> getRoleList();

    /**
     * 当前登录User中的其他属性
     * @param name 属性名称
     * @param <T> 返回数据类型
     * @return
     */
    <T> T getProperty(String name);


}
